//
//  WhaleSDK.h
//  whalesdk_oc
//
//  Created by wzz on 2024/6/13.
//

#import <Foundation/Foundation.h>
#import "XGInitConfig.h"
NS_ASSUME_NONNULL_BEGIN

@interface WhaleSDK : NSObject


/*
*SDK资源释放
*/
+ (void)Release;
+ (BOOL)initSDK:(XGInitConfig *)config;
+ (void)SetDeviceId:(NSString*)deviceId;
+ (NSString *)GetDeviceId;
+ (void)SetAuthToken:(NSString*)token;
+ (void)OnAccountLogin:(NSString*)account;
+ (void)OnRoleLogin:(NSDictionary*)dict;
+ (void)OnAccountLogout;
+ (void)OnConnect;
+ (void)OnEvent:(NSString *)eventId eventDesc:(NSString *)eventDesc ext:(NSDictionary *)ext;
+ (void)OnEventSync:(NSString *)eventId eventDesc:(NSString *)eventDesc ext:(NSDictionary *)ext;
+ (void)OnRoleLogout;
+ (void)OnRoleLevelUp:(int)roleLevel;
+ (void)OnPayFinish:(NSDictionary*)payDict;
+ (void)OnBtPayOrderCancel:(NSDictionary*)payDict;
+ (void)OnBtPayFail:(NSDictionary*)payDict;
+ (void)OnBtPayOther:(NSDictionary*)payDict;
+ (void)OnBtPayProgress:(NSDictionary*)payDict;
+ (void)OnBtGameXgPay:(NSString*)gameTradeNo;
+ (void)OnMissionBegin:(NSDictionary*)missionDict;
+ (void)OnMissionSuccess:(NSDictionary*)missionDict;
+ (void)OnMissionFail:(NSDictionary*)missionDict;
+ (void)OnMissionEndEvent:(NSString*)missionResult missionDict:(NSDictionary *)missionDict;
+ (void)OnVirtualCurrencyGain:(NSDictionary*)virtualCurrencyGainDict;
+ (void)OnVirtualCurrencyGainForPurchased:(NSDictionary*)virtualCurrencyGainDict tradeNo:(NSString *)tradeNo;
+ (void)OnVirtualCurrencyConsume:(NSDictionary*)virtualCurrencyGainDict;
+ (void)OnItemGain:(NSDictionary*)itemGainDict;
+ (void)OnItemConsume:(NSDictionary*)itemConsumeDict;
+ (void)OnGameLoadResource;
+ (void)OnGameLoadConfig;
+ (void)OnOpenAnnouncement;
+ (void)OnCloseAnnouncement;
+ (void)OnNewUserMission;
+ (void)OnScanResultSuccess:(NSString*)account phoneInfo:(NSDictionary *)phoneInfoDict;
+ (void)OnScanResultFail:(NSString*)msgCode msg:(NSString *)msg  phoneInfo:(NSDictionary *)phoneInfoDict;
+ (void)OnClickDownloadLink:(NSDictionary *)phoneInfoDict;
+ (void)OnRegister:(NSDictionary *)roleDict;
+ (void)OnSelectProduct:(NSString*)productId;
+ (void)OnGameCreateOrderResult:(NSString*)productId state:(NSString *)state gameTradeNo:(NSString *)gameTradeNo nOrderCreateCode:(NSString *)nOrderCreateCode szOrderCreateMsg:(NSString *)szOrderCreateMsg;
+ (void)OnPrivateFunCodeUse:(NSDictionary *)funCodeDict;
+ (void)OnPublicFunCodeUse:(NSDictionary *)funCodeDict;
+ (void)OnFunCodeUse:(NSDictionary *)funCodeDict scope:(NSString *)scope;
+ (void)AddAttribute:(NSString *)key value:(NSString *)value;
+ (void)RemoveAttribute:(NSString *)key;
+ (void)OnPayFail:(NSDictionary *)payDict payResult:(NSDictionary *)payResultDict;
+ (void)OnPayCancel:(NSDictionary *)payDict payResult:(NSDictionary *)payResultDict;
+ (void)OnPaySuccess:(NSDictionary *)payDict payResult:(NSDictionary *)payResultDict;
+ (void)OnPayOthers:(NSDictionary *)payDict payResult:(NSDictionary *)payResultDict;
+ (void)OnScanStart;
+ (void)OnAccountRegister:(NSString *)accountId ext:(NSDictionary *)ext;
+ (void)OnLogin;
+ (void)OnPay;
+ (void)OnInitStart;
+ (void)OnPushMessage:(NSDictionary *)pushInfoDict;
+ (void)OnInitFail:(int)code msg:(NSString *)msg channelCode:(NSString *)channelCode;
+ (void)OnInitSuccess:(int)code msg:(NSString *)msg channelCode:(NSString *)channelCode;
+ (void)OnLoginSuccess:(int)code authInfo:(NSString *)authInfo;
+ (void)OnLoginFail:(int)code msg:(NSString *)msg channelCode:(NSString *)channelCode;
+ (void)OnLoginCancel:(int)code msg:(NSString *)msg;


+ (int)test:(int)a b:(int)b;

@end

NS_ASSUME_NONNULL_END
